package controllers;

import models.Administrador;
import models.Nutricionista;
import models.Pessoa;
import play.Logger;
import play.data.validation.Valid;
import play.mvc.Before;
import play.mvc.Controller;

public class Login extends Controller{
	
	
	public static void index(){
		 render();
	}
	
	public static void tryLogin(@Valid Pessoa p) {
		// Tenta logar:
		Pessoa pessoa = Pessoa.find("byLoginAndSenha", p.login, p.senha)
				.first();
		if (pessoa instanceof Nutricionista) {
			session.put("pessoa", pessoa.id.toString());
			flash.success("Ola¡ %s ", pessoa.nome);
			Nutricionistas.index();
			
		}
		
		if (pessoa instanceof Administrador) {
			session.put("pessoa", pessoa.id.toString());
			flash.success("Ola¡ %s ", pessoa.nome);
			Administradores.index();
			//Nutricionistas.solicitacaocadastro();
		}
		// Cria um login para admin
		if (p.login.equals("admin") && p.senha.equals("admin")) {
			Logger.info("%s", p);

			Administrador a = new Administrador();
			a.login = "admin";
			a.senha = "admin";
			a.nome = "admin";
			a.save();

			session.put("pessoa", a.id.toString());
			flash.success("Ola¡ %s ", a.login);
			Administradores.index();
			
		}
		
		if (validation.hasErrors()) {
			 params.flash();  	
			 validation.keep();
			
    		index();
    	}	

	}

	/**
	 * Retorna a "pessoa" cujo login esta registrado na sessao
	 */
	public static Pessoa getLogin() {
		String id = session.get("pessoa");

		if (id != null) {
			Pessoa pessoa = Pessoa.findById(Long.parseLong(id));
			return pessoa;
		}
		return null;

	}

	/**
	 * Remove os dados da sessao, efetuando o logout
	 */
	public static void logout() {
		session.remove("pessoa");
		Application.index();
	}
	
	

}
